// 要求 实现 两个参数必须是同类型 要么数字 要么字符串
function add(arg1: string, arg2: string): string;

function add(arg1: number, arg2: number): number

function add(arg1: number | string, arg2: number | string) {
    // if ([arg1, arg2].every(t => typeof t === 'string')) { // 垃圾编译器
    //     return arg1 + arg2
    // }

    if (typeof arg1 === 'string' && typeof arg2 === "string") {
        return arg1.length + arg2.length
    } else if (typeof arg1 === 'number' && typeof arg2 === "number") {
        return arg1 + arg2
    }

}

add(10, 20)
add("10", "20")

export { }